home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / fish / 676-700 / 699 / ezasm / scrwin.s < prev   
Text File  |  1995-03-18  |  2KB  |  120 lines

  1.  
  2.  
  3. * Opens a Screen and a Window, and prints a message
  4.  
  5.  
  6.  
  7. LONG    Screen Window IMClass MsgSave
  8. WORD    IMCode
  9.  
  10.  
  11.  
  12.     a1 = #NewScr
  13.     a0 = _GfxBase
  14.     6(a1) = 216(a0) w    ;NewScr.Height = GfxBase.NormalDisplayRows
  15.  
  16.     Screen = OpenScreen( #NewScr )
  17.     beq    Exit
  18.  
  19.     a0 = #NewWin
  20.     30(a0) = Screen        ;NewWin.Screen = Screen
  21.  
  22.     Window = OpenWindow( #NewWin )
  23.     beq    Exit
  24.  
  25.     a0 = d0            ;( Window )
  26.     Move( 50(a0) 20 30 )
  27.  
  28.     a0 = Window
  29.     Text( 50(a0) "I hope you enjoy using EZAsm!" 29 )
  30.     
  31.  
  32. *   Check for messages..
  33.  
  34.  
  35. CheckMsg
  36.  
  37.     a1 = Window
  38.     WaitPort( 86(a1) )    ;Window.UserPort
  39.  
  40. GetMessage
  41.  
  42.     a1 = Window
  43.     MsgSave = GetMsg( 86(a1) )
  44.     beq    CheckMsg
  45.  
  46. *   Got something..
  47.  
  48.     a1 = d0            ;( MsgSave )
  49.     IMClass = 20(a1)    ;save Class
  50.     IMCode = 24(a1)        ;save Code
  51.  
  52.     ReplyMsg( d0 )
  53.  
  54.     IMClass != 512 GetMessage    ;CLOSEWINDOW?
  55.  
  56.  
  57. Exit
  58.  
  59.     Window != 0 {
  60.  
  61.         Forbid( )    ;( stop messages )
  62.  
  63. FreeLoop    a1 = Window
  64.         GetMsg( 86(a1) )
  65.  
  66.         d0 != 0 {
  67.             ReplyMsg( d0 )
  68.             jmp    FreeLoop
  69.         }
  70.  
  71.         CloseWindow( Window )
  72.         Permit( )
  73.     }
  74.  
  75.     Screen != 0 {
  76.         CloseScreen( Screen )
  77.     }
  78.  
  79.  
  80.     END
  81.  
  82.  
  83.  
  84.  
  85.  
  86. NewScr    ds.w    0        ;( word align )
  87.     dc.w    0,0,640,0,2    ;LeftEdge,TopEdge,Width,Height,Depth
  88.     dc.b    -1,-1        ;DetailPen,BlockPen
  89.     dc.w    $8000,$000f    ;ViewModes,Type
  90.     dc.l    0,0        ;Font,DefaultTitle
  91.     dc.l    0        ;Gadgets
  92.     dc.l    0        ;CustomBitMap
  93.  
  94.  
  95. *  ViewModes = HIRES
  96.  
  97. *  Type      = CUSTOMSCREEN
  98.  
  99.  
  100.  
  101. NewWin    ds.w    0        ;( word align )
  102.     dc.w    20,20,400,150    ;LeftEdge,TopEdge,Width,Height    
  103.     dc.b    -1,-1        ;DetailPen,BlockPen
  104.     dc.l    $00000200    ;IDCMPFlags
  105.     dc.l    $0002100f    ;Flags
  106.     dc.l    0,0,0        ;FirstGadget,CheckMark,Title
  107.     dc.l    0,0        ;Screen,BitMap
  108.     dc.w    400,75        ;MinWidth,MinHeight
  109.     dc.w    $ffff,$ffff    ;MaxWidth,MaxHeight
  110.     dc.w    $000f        ;Type
  111.  
  112.  
  113. *  IDCMPFlags = CLOSEWINDOW
  114.  
  115. *  Flags      = WINDOWCLOSE | SMART_REFRESH | ACTIVATE | WINDOWDRAG |
  116. *        WINDOWDEPTH | WINDOWSIZING | NOCAREREFRESH
  117.  
  118. *  Type       = CUSTOMSCREEN
  119.  
  120.